#ifndef INOTIFY_H
#define INOTIFY_H

#include <QString>
class HObject;

class INotify
{
public:
    INotify(){}
    virtual ~INotify(){}
    // 关注的数据类型
    virtual QStringList notifyDataTypes() = 0;
    // 数据添加通知
    virtual void dataAddNotify(HObject* p) = 0;
    // 数据发生变化通知
    virtual void dataChangedNotify(HObject* p) = 0;
    // 数据被删除前通知
    virtual void dataPreRemoveNotify(HObject* p) = 0;
    ///> 数据激活通知，激活数据主要用于数据在地图上显示，默认单击即可激活
    virtual void dataActivedNotify(HObject* p) = 0;
    ///> 数据编辑通知，数据编辑主要用于数据的可视化界面编辑，用于弹出新的窗口
    virtual void dataEditNotify(HObject* p) = 0;

    virtual void dataExternActionNotify(HObject* p,const QString& opType){
        return;
    }

};

#endif // INOTIFY_H
